Skip to main content

Synthesis Legacy

synthesis-legacy (VMID 121, 10.0.0.21) runs the older ABAIR speech-synthesis API. It exists to keep that stack alive: it was moved here from an old VM (synthesis, 10.0.0.5) that was never managed as code.

Playbookansible/hetzner-main/setup-synthesis-legacy.yml
Compose fileansible/hetzner-main/synthesis-legacy-apps/docker-compose.yml
App directory/opt/apps/synthesis-legacy
Make targetssetup-synthesis-legacy, update-synthesis-legacy, enroll-wazuh-synthesis-legacy
SecretsWebserver htpasswd admin (for Alloy)
Not the same as Amergin's synthesis

This is the older abair-python code base. The newer synthesis-production-server runs on Amergin and serves api.abair.ie/v4/synthesis.

Containers​

All three use host networking and call each other on localhost, as they did on the old VM.

ContainerPortPurpose
abair-api8002The API itself (webapi.abair_direct_joblib:app). Waits until the other two are up.
abair-piper8001Piper voice synthesis. Memory limit 12 GB, because it leaks memory: under heavy traffic it hits the limit, is killed and restarted, and requests fail while it reloads. Its voice models are mounted read-only from piper-synthesis/models/.
abair-ltsserver2029Letter-to-sound (LTS) server.

Who uses it​

This stack is live production, not an archive:

  • synthesis.abair.ie/api/, /piper/ and /lts/
  • www.abair.ie/api2/ and old.abair.ie/api2/
  • the legacy v3 API (abair-api on services-user), which calls 10.0.0.21:8002 server-to-server

How it's deployed​

There is no CI and no registry image. The playbook:

  1. copies three repositories with rsync, from the admin's machine at /home/john/Documents/abair/synthesis-legacy-repos/ (abair-python, piper-synthesis, ltsserver-rest);
  2. stops if piper-synthesis/models/ is missing or empty (the models were copied by hand from the old VM and aren't in any repository);
  3. builds the images on the VM and recreates the containers (docker compose build, then up -d --force-recreate).
Known issue

The source path is fixed to one admin's home directory, and the make container can't see it. rsync also isn't in the tooling image. So make setup-synthesis-legacy and make update-synthesis-legacy currently only work if run outside the container, from that machine. The source repos aren't in Gitea yet.

Firewall​

No UFW rules are configured on this VM.